package cn.itcast.zt.extend;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
import org.springframework.stereotype.Component;

/**
 * @author zhangtian105
 * @ClassName TwoBeanDefinitionRegistryPostProcessor.java
 * @projectName SpringBoot2.x
 * @Description
 * 这个接口在读取项目中的beanDefinition之后执行，提供一个补充的扩展点
 * 使用场景：你可以在这里动态注册自己的beanDefinition，可以加载classpath之外的bean
 * @createTime 2020年11月10日 16:32:00
 */
@Component
public class _2BeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {
    @Override
    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanDefinitionRegistry) throws BeansException {
        System.out.println("【BeanDefinitionRegistryPostProcessor.postProcessBeanDefinitionRegistry】org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor......");
    }

    @Override
    public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException {
        System.out.println("【BeanDefinitionRegistryPostProcessor.postProcessBeanFactory】org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor......");
    }
}

